/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistema.ecua911.Exepciones;

import java.lang.reflect.Method;
import javax.swing.JOptionPane;

/**
 *
 * @author Pablito
 */
public class Validaciones {

    private String tipo = "";

    public Validaciones() {
    }

    public void vacio(String cadena, String inf) throws EstaVacioException {
        if (cadena.trim().isEmpty()) {
            throw new EstaVacioException(inf + " Esta Vacio");

        }
    }

    public String GenerarId(String valor) {

        String id = " ";
        if (valor.length() >= 2) {
            for (int i = 0; i < 4; i++) {
                int c = (int) (Math.random() * valor.length());
                id += valor.charAt(c);
            }

        }
        return id.toUpperCase();
    }

    public boolean validarcedula(String cedula, String inf) throws EstaVacioException, NoesNumeroExeption {

        //SoloNum(tipo, inf);
        int suma = 0;
        int v1[] = new int[10];
        int v2[] = new int[10];
        int i;
        if (cedula.length() != 10) {
            return false;
        }//Reviso que los el numero de caracteres sea el correcto
        for (i = 0; i < 10; i = i + 2) {
            v2[i] = 2;
        }
        for (i = 1; i < 10; i = i + 2) {
            v2[i] = 1;
        }
        for (i = 0; i < cedula.length(); i++) {
            if (Character.isDigit(cedula.charAt(i)) == false) {
                return false;
            }
        }//Es un bucle para validar que los caracteres de la cadena sean numeros
        for (i = 0; i < cedula.length(); i++) {
            v1[i] = (cedula.charAt(i) - 48);
        }//Fin del for para asignar los caracteres de la cedula a un vector
        for (i = 0; i < 9; i++) {
            v1[i] = v1[i] * v2[i];
            if (v1[i] > 9) {
                v1[i] = v1[i] - 9;
            }//Verifico que no sea mayor que 9
            suma = v1[i] + suma;
        }//Fin del bucle for
        if (suma % 10 != 0) {
            suma = 10 - suma % 10;
            if (suma != v1[9]) {
                return false;
            }
        }//comparo que el resto de dividir para 10 no sea cero
        return true;
    }//Fin de la validacion de la cedula

    public boolean isEmpy(String valor) {
        if (valor.length() == 0) {
            return false;
        } else {
            return true;
        }
    }

    public String PasMayus(String valor) {
        return valor.toUpperCase();
    }

    public boolean SoloNum(String valor, String inf) throws EstaVacioException, NoesNumeroExeption {
        //vacio(valor, tipo);
        try {
            Integer.parseInt(valor);
            return true;
        } catch (Exception e) {
            throw new NoesNumeroExeption(inf + ": No es un Numero");
        }

    }

    public void esPalabraCaracteres(String palabra, String inf) throws NoesCaracteresException, EstaVacioException {
        //vacio(palabra, inf);

        palabra = sinEspacios(palabra).toUpperCase();
        for (int i = 0; i < palabra.length(); i++) {
            if (!((palabra.charAt(i) >= 65 && palabra.charAt(i) <= 90))) {

                throw new NoesCaracteresException(inf + ": No es Caracteres");
            }
        }

    }

 

    public String sinEspacios(String valor) {
        String cadena = "";
        for (int x = 0; x < valor.length(); x++) {
            if (valor.charAt(x) != ' ') {
                cadena += valor.charAt(x);
            }
        }
        return cadena;
    }

    public void darDatos(String tipo) {
        this.tipo = tipo;

    }
}
